[INFO] cloning repository https://github.com/motemotech/pol-tree
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/motemotech/pol-tree" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmotemotech%2Fpol-tree", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmotemotech%2Fpol-tree'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4b9ff525380c5b00625a715983493430336771db
[INFO] testing motemotech/pol-tree against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmotemotech%2Fpol-tree" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/motemotech/pol-tree
[INFO] finished tweaking git repo https://github.com/motemotech/pol-tree
[INFO] tweaked toml for git repo https://github.com/motemotech/pol-tree written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/motemotech/pol-tree on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/motemotech/pol-tree already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c774381cab5ae5bfca4170c6874f22b9fe0a4bf5ca63788fa038cded8f51f42e
[INFO] running `Command { std: "docker" "start" "-a" "c774381cab5ae5bfca4170c6874f22b9fe0a4bf5ca63788fa038cded8f51f42e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c774381cab5ae5bfca4170c6874f22b9fe0a4bf5ca63788fa038cded8f51f42e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c774381cab5ae5bfca4170c6874f22b9fe0a4bf5ca63788fa038cded8f51f42e", kill_on_drop: false }`
[INFO] [stdout] c774381cab5ae5bfca4170c6874f22b9fe0a4bf5ca63788fa038cded8f51f42e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3167831e7fb4163bac98b5ac491353f4a204ff9e38a7303f84b67f0ba0420a47
[INFO] running `Command { std: "docker" "start" "-a" "3167831e7fb4163bac98b5ac491353f4a204ff9e38a7303f84b67f0ba0420a47", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling zmij v1.0.18
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling pol-tree v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AttributeValue`, `DestinationEntityAttributeKey`, `SourceEntityAttributeKey`, and `SourceEntity`
[INFO] [stdout]  --> src/ip_based/classifier.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     SourceEntity, DestinationEntity, AttributeValue,
[INFO] [stdout]   |     ^^^^^^^^^^^^                     ^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     SourceEntityAttributeKey, DestinationEntityAttributeKey,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Condition`, `Effect`, and `Expression`
[INFO] [stdout]  --> src/ip_based/classifier.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Policy, Rule, Effect, Condition, Expression,
[INFO] [stdout]   |                   ^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AttrIdMap`
[INFO] [stdout]  --> src/ip_based/classifier.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     AttrIdMap, 
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collect_src_requirements`
[INFO] [stdout]   --> src/ip_based/classifier.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     collect_src_requirements,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `abac_lab::parser::Parser`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use abac_lab::parser::Parser;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `abac_lab::attr_val::*`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use abac_lab::attr_val::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AttributeValue`, `DestinationEntityAttributeKey`, and `SourceEntityAttributeKey`
[INFO] [stdout]   --> src/main.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 | use ip_based::entity::{AttributeValue, SourceEntity, DestinationEntity, SourceEntityAttributeKey, DestinationEntityAttributeKey};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^                                   ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ip_based::classifier::*`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use ip_based::classifier::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ip_based::rule_requirements::*`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use ip_based::rule_requirements::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cal_destination_entity_attribute_entropy` and `cal_source_entity_attribute_entropy`
[INFO] [stdout]   --> src/main.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     cal_source_entity_attribute_entropy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     cal_destination_entity_attribute_entropy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/abac_lab/parser.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let content = line.strip_prefix("rule(")
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numeric_thresholds`
[INFO] [stdout]    --> src/ip_based/encoder.rs:232:5
[INFO] [stdout]     |
[INFO] [stdout] 232 |     numeric_thresholds: &HashMap<String, Vec<i64>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numeric_thresholds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bits`
[INFO] [stdout]   --> src/main.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             let bits = abac_requirements_to_bit_arrays(&attr_id, &requirements, &abac_attr_order)
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoadedData` is never constructed
[INFO] [stdout]   --> src/main.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct LoadedData {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ABAC_ATTR_KEYS` is never used
[INFO] [stdout]   --> src/abac/entity.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const ABAC_ATTR_KEYS: &[&str] = &[
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `combining_algorithm` and `default_effect` are never read
[INFO] [stdout]   --> src/abac/rule.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct AbacPolicy {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 47 |     pub policy_name: String,
[INFO] [stdout] 48 |     pub combining_algorithm: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub default_effect: Effect,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AbacPolicy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `description` and `effect` are never read
[INFO] [stdout]   --> src/abac/rule.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct AbacRule {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 55 |     pub id: String,
[INFO] [stdout] 56 |     pub description: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 57 |     pub effect: Effect,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AbacRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matches` is never used
[INFO] [stdout]    --> src/abac/rule.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl AbacRule {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn matches(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]    --> src/abac/rule.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl AbacCondition {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn evaluate(&self, src: &AbacEntity, dst: &AbacEntity) -> Result<bool, String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AttributeValue` is never used
[INFO] [stdout]  --> src/abac_lab/attr_val.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum AttributeValue {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UserAttributeKey` is never used
[INFO] [stdout]  --> src/abac_lab/attr_val.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum UserAttributeKey {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ResourceAttributeKey` is never used
[INFO] [stdout]   --> src/abac_lab/attr_val.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ResourceAttributeKey {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UserAttribute` is never constructed
[INFO] [stdout]   --> src/abac_lab/attr_val.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct UserAttribute {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResourceAttribute` is never constructed
[INFO] [stdout]   --> src/abac_lab/attr_val.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ResourceAttribute {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rule` is never constructed
[INFO] [stdout]   --> src/abac_lab/attr_val.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Rule {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuleCondition` is never used
[INFO] [stdout]   --> src/abac_lab/attr_val.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum RuleCondition {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]  --> src/abac_lab/parser.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Parser {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse_line`, `parse_user_attrib`, `parse_resource_attrib`, `parse_rule`, and `parse_attribute_value` are never used
[INFO] [stdout]    --> src/abac_lab/parser.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  11 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn parse_line(&mut self, line: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     fn parse_user_attrib(&mut self, line: &str) -> Result<UserAttribute, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn parse_resource_attrib(&self, line: &str) -> Result<ResourceAttribute, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn parse_rule(&mut self, line: &str) -> Result<Rule, String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn parse_attribute_value(&self, value: &str) -> Result<AttributeValue, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_attribute_value` is never used
[INFO] [stdout]  --> src/ip_based/entity.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn parse_attribute_value(val: &Value) -> Result<AttributeValue, String> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SourceEntityAttributeKey` is never used
[INFO] [stdout]   --> src/ip_based/entity.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum SourceEntityAttributeKey {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DestinationEntityAttributeKey` is never used
[INFO] [stdout]   --> src/ip_based/entity.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub enum DestinationEntityAttributeKey {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceEntity` is never constructed
[INFO] [stdout]   --> src/ip_based/entity.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct SourceEntity {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DestinationEntity` is never constructed
[INFO] [stdout]   --> src/ip_based/entity.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct DestinationEntity {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_json_value`, `parse_attribute_key`, `deparse_attribute_key`, and `parse_attribute_value` are never used
[INFO] [stdout]    --> src/ip_based/entity.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl SourceEntity {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout]  71 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn parse_attribute_key(key: &str) -> Result<SourceEntityAttributeKey, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn deparse_attribute_key(key: &SourceEntityAttributeKey) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn parse_attribute_value(val: &Value) -> Result<AttributeValue, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_json_value`, `parse_attribute_key`, `deparse_attribute_key`, and `parse_attribute_value` are never used
[INFO] [stdout]    --> src/ip_based/entity.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl DestinationEntity {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] 129 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {    
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn parse_attribute_key(key: &str) -> Result<DestinationEntityAttributeKey, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn deparse_attribute_key(key: &DestinationEntityAttributeKey) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn parse_attribute_value(val: &Value) -> Result<AttributeValue, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Effect` is never used
[INFO] [stdout]  --> src/ip_based/rule.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum Effect {
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expression` is never used
[INFO] [stdout]   --> src/ip_based/rule.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Expression {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Condition` is never used
[INFO] [stdout]   --> src/ip_based/rule.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Condition {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Policy` is never constructed
[INFO] [stdout]   --> src/ip_based/rule.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Policy {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rule` is never constructed
[INFO] [stdout]   --> src/ip_based/rule.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct Rule {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_json_value` is never used
[INFO] [stdout]   --> src/ip_based/rule.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl Policy {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 64 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_json_value` and `matches` are never used
[INFO] [stdout]    --> src/ip_based/rule.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl Rule {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 107 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn matches(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_json_value`, `evaluate`, `compare_values`, `references_dst`, and `evaluate_dest_only` are never used
[INFO] [stdout]    --> src/ip_based/rule.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl Condition {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 154 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn evaluate(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     fn compare_values<F>(lhs: &AttributeValue, rhs: &AttributeValue, cmp: F) -> Result<bool, String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn references_dst(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn evaluate_dest_only(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_json_value`, `evaluate`, `get_source_attribute`, `get_destination_attribute`, `references_dst`, and `references_src_or_env` are never used
[INFO] [stdout]    --> src/ip_based/rule.rs:422:12
[INFO] [stdout]     |
[INFO] [stdout] 421 | impl Expression {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 422 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     pub fn evaluate(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     fn get_source_attribute(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 556 |     fn get_destination_attribute(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn references_dst(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 588 |     pub fn references_src_or_env(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_rule_applicable_for_dest_entity` is never used
[INFO] [stdout]   --> src/ip_based/classifier.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn is_rule_applicable_for_dest_entity(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_applicable_rules_per_dest_entity` is never used
[INFO] [stdout]   --> src/ip_based/classifier.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn list_applicable_rules_per_dest_entity(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_source_entity` is never used
[INFO] [stdout]    --> src/ip_based/encoder.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn encode_source_entity(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_destination_entity` is never used
[INFO] [stdout]    --> src/ip_based/encoder.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn encode_destination_entity(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encoded_source_to_bit_arrays` is never used
[INFO] [stdout]    --> src/ip_based/encoder.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn encoded_source_to_bit_arrays(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirement_to_bits` is never used
[INFO] [stdout]    --> src/ip_based/encoder.rs:228:4
[INFO] [stdout]     |
[INFO] [stdout] 228 | fn requirement_to_bits(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirements_to_bit_arrays` is never used
[INFO] [stdout]    --> src/ip_based/encoder.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub fn requirements_to_bit_arrays(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SrcRequirement` is never used
[INFO] [stdout]  --> src/ip_based/rule_requirements.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum SrcRequirement {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dummy_source` is never used
[INFO] [stdout]   --> src/ip_based/rule_requirements.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn dummy_source() -> SourceEntity {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval_expr_with_dest` is never used
[INFO] [stdout]   --> src/ip_based/rule_requirements.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn eval_expr_with_dest(expr: &Expression, dest: &DestinationEntity) -> Result<AttributeValue, String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_src_attr_name` is never used
[INFO] [stdout]   --> src/ip_based/rule_requirements.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn get_src_attr_name(expr: &Expression) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_src_requirements` is never used
[INFO] [stdout]   --> src/ip_based/rule_requirements.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn collect_src_requirements(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_shannon_entropy_from_probabilities` is never used
[INFO] [stdout]  --> src/pol-tree/cal_shannon_entropy.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn cal_shannon_entropy_from_probabilities(probabilities: &[f64]) -> f64 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `information_gain` is never used
[INFO] [stdout]   --> src/pol-tree/cal_shannon_entropy.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn information_gain(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attribute_value_to_key` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn attribute_value_to_key(value: &AttributeValue) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_attribute_value_to_key` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn ip_attribute_value_to_key(value: &IpAttributeValue) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_user_attribute_probabilities` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn cal_user_attribute_probabilities(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_resource_attribute_probabilities` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn cal_resource_attribute_probabilities(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_user_attribute_entropy` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn cal_user_attribute_entropy(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_resource_attribute_entropy` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn cal_resource_attribute_entropy(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_source_entity_attribute_probabilities` is never used
[INFO] [stdout]    --> src/pol-tree/cal_probabilities.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn cal_source_entity_attribute_probabilities(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_destination_entity_attribute_probabilities` is never used
[INFO] [stdout]    --> src/pol-tree/cal_probabilities.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn cal_destination_entity_attribute_probabilities(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_source_entity_attribute_entropy` is never used
[INFO] [stdout]    --> src/pol-tree/cal_probabilities.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn cal_source_entity_attribute_entropy(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_destination_entity_attribute_entropy` is never used
[INFO] [stdout]    --> src/pol-tree/cal_probabilities.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn cal_destination_entity_attribute_entropy(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.59s
[INFO] running `Command { std: "docker" "inspect" "3167831e7fb4163bac98b5ac491353f4a204ff9e38a7303f84b67f0ba0420a47", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3167831e7fb4163bac98b5ac491353f4a204ff9e38a7303f84b67f0ba0420a47", kill_on_drop: false }`
[INFO] [stdout] 3167831e7fb4163bac98b5ac491353f4a204ff9e38a7303f84b67f0ba0420a47
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 085e5361a3285c9a099a8e60ef0d006f6062f45a63b65001c870b16eeb909ca2
[INFO] running `Command { std: "docker" "start" "-a" "085e5361a3285c9a099a8e60ef0d006f6062f45a63b65001c870b16eeb909ca2", kill_on_drop: false }`
[INFO] [stderr]    Compiling pol-tree v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AttributeValue`, `DestinationEntityAttributeKey`, `SourceEntityAttributeKey`, and `SourceEntity`
[INFO] [stdout]  --> src/ip_based/classifier.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     SourceEntity, DestinationEntity, AttributeValue,
[INFO] [stdout]   |     ^^^^^^^^^^^^                     ^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     SourceEntityAttributeKey, DestinationEntityAttributeKey,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Condition`, `Effect`, and `Expression`
[INFO] [stdout]  --> src/ip_based/classifier.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Policy, Rule, Effect, Condition, Expression,
[INFO] [stdout]   |                   ^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AttrIdMap`
[INFO] [stdout]  --> src/ip_based/classifier.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     AttrIdMap, 
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collect_src_requirements`
[INFO] [stdout]   --> src/ip_based/classifier.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     collect_src_requirements,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `abac_lab::parser::Parser`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use abac_lab::parser::Parser;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `abac_lab::attr_val::*`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use abac_lab::attr_val::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AttributeValue`, `DestinationEntityAttributeKey`, and `SourceEntityAttributeKey`
[INFO] [stdout]   --> src/main.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 | use ip_based::entity::{AttributeValue, SourceEntity, DestinationEntity, SourceEntityAttributeKey, DestinationEntityAttributeKey};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^                                   ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ip_based::classifier::*`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use ip_based::classifier::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ip_based::rule_requirements::*`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use ip_based::rule_requirements::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cal_destination_entity_attribute_entropy` and `cal_source_entity_attribute_entropy`
[INFO] [stdout]   --> src/main.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     cal_source_entity_attribute_entropy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     cal_destination_entity_attribute_entropy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/abac_lab/parser.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let content = line.strip_prefix("rule(")
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numeric_thresholds`
[INFO] [stdout]    --> src/ip_based/encoder.rs:232:5
[INFO] [stdout]     |
[INFO] [stdout] 232 |     numeric_thresholds: &HashMap<String, Vec<i64>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numeric_thresholds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bits`
[INFO] [stdout]   --> src/main.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             let bits = abac_requirements_to_bit_arrays(&attr_id, &requirements, &abac_attr_order)
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoadedData` is never constructed
[INFO] [stdout]   --> src/main.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct LoadedData {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ABAC_ATTR_KEYS` is never used
[INFO] [stdout]   --> src/abac/entity.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const ABAC_ATTR_KEYS: &[&str] = &[
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `combining_algorithm` and `default_effect` are never read
[INFO] [stdout]   --> src/abac/rule.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct AbacPolicy {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 47 |     pub policy_name: String,
[INFO] [stdout] 48 |     pub combining_algorithm: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub default_effect: Effect,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AbacPolicy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `description` and `effect` are never read
[INFO] [stdout]   --> src/abac/rule.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct AbacRule {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 55 |     pub id: String,
[INFO] [stdout] 56 |     pub description: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 57 |     pub effect: Effect,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AbacRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matches` is never used
[INFO] [stdout]    --> src/abac/rule.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl AbacRule {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn matches(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]    --> src/abac/rule.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl AbacCondition {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn evaluate(&self, src: &AbacEntity, dst: &AbacEntity) -> Result<bool, String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AttributeValue` is never used
[INFO] [stdout]  --> src/abac_lab/attr_val.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum AttributeValue {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UserAttributeKey` is never used
[INFO] [stdout]  --> src/abac_lab/attr_val.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum UserAttributeKey {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ResourceAttributeKey` is never used
[INFO] [stdout]   --> src/abac_lab/attr_val.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ResourceAttributeKey {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UserAttribute` is never constructed
[INFO] [stdout]   --> src/abac_lab/attr_val.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct UserAttribute {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResourceAttribute` is never constructed
[INFO] [stdout]   --> src/abac_lab/attr_val.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ResourceAttribute {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rule` is never constructed
[INFO] [stdout]   --> src/abac_lab/attr_val.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Rule {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuleCondition` is never used
[INFO] [stdout]   --> src/abac_lab/attr_val.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum RuleCondition {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]  --> src/abac_lab/parser.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Parser {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `parse_line`, `parse_user_attrib`, `parse_resource_attrib`, `parse_rule`, and `parse_attribute_value` are never used
[INFO] [stdout]    --> src/abac_lab/parser.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  11 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn parse_line(&mut self, line: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     fn parse_user_attrib(&mut self, line: &str) -> Result<UserAttribute, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn parse_resource_attrib(&self, line: &str) -> Result<ResourceAttribute, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn parse_rule(&mut self, line: &str) -> Result<Rule, String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn parse_attribute_value(&self, value: &str) -> Result<AttributeValue, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_attribute_value` is never used
[INFO] [stdout]  --> src/ip_based/entity.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn parse_attribute_value(val: &Value) -> Result<AttributeValue, String> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SourceEntityAttributeKey` is never used
[INFO] [stdout]   --> src/ip_based/entity.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum SourceEntityAttributeKey {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DestinationEntityAttributeKey` is never used
[INFO] [stdout]   --> src/ip_based/entity.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub enum DestinationEntityAttributeKey {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceEntity` is never constructed
[INFO] [stdout]   --> src/ip_based/entity.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct SourceEntity {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DestinationEntity` is never constructed
[INFO] [stdout]   --> src/ip_based/entity.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct DestinationEntity {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_json_value`, `parse_attribute_key`, `deparse_attribute_key`, and `parse_attribute_value` are never used
[INFO] [stdout]    --> src/ip_based/entity.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl SourceEntity {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout]  71 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn parse_attribute_key(key: &str) -> Result<SourceEntityAttributeKey, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn deparse_attribute_key(key: &SourceEntityAttributeKey) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn parse_attribute_value(val: &Value) -> Result<AttributeValue, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_json_value`, `parse_attribute_key`, `deparse_attribute_key`, and `parse_attribute_value` are never used
[INFO] [stdout]    --> src/ip_based/entity.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl DestinationEntity {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] 129 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {    
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn parse_attribute_key(key: &str) -> Result<DestinationEntityAttributeKey, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn deparse_attribute_key(key: &DestinationEntityAttributeKey) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn parse_attribute_value(val: &Value) -> Result<AttributeValue, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Effect` is never used
[INFO] [stdout]  --> src/ip_based/rule.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum Effect {
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expression` is never used
[INFO] [stdout]   --> src/ip_based/rule.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Expression {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Condition` is never used
[INFO] [stdout]   --> src/ip_based/rule.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Condition {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Policy` is never constructed
[INFO] [stdout]   --> src/ip_based/rule.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Policy {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rule` is never constructed
[INFO] [stdout]   --> src/ip_based/rule.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct Rule {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_json_value` is never used
[INFO] [stdout]   --> src/ip_based/rule.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl Policy {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 64 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_json_value` and `matches` are never used
[INFO] [stdout]    --> src/ip_based/rule.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl Rule {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 107 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn matches(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_json_value`, `evaluate`, `compare_values`, `references_dst`, and `evaluate_dest_only` are never used
[INFO] [stdout]    --> src/ip_based/rule.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl Condition {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 154 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn evaluate(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     fn compare_values<F>(lhs: &AttributeValue, rhs: &AttributeValue, cmp: F) -> Result<bool, String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn references_dst(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn evaluate_dest_only(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_json_value`, `evaluate`, `get_source_attribute`, `get_destination_attribute`, `references_dst`, and `references_src_or_env` are never used
[INFO] [stdout]    --> src/ip_based/rule.rs:422:12
[INFO] [stdout]     |
[INFO] [stdout] 421 | impl Expression {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 422 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     pub fn evaluate(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     fn get_source_attribute(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 556 |     fn get_destination_attribute(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn references_dst(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 588 |     pub fn references_src_or_env(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_rule_applicable_for_dest_entity` is never used
[INFO] [stdout]   --> src/ip_based/classifier.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn is_rule_applicable_for_dest_entity(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_applicable_rules_per_dest_entity` is never used
[INFO] [stdout]   --> src/ip_based/classifier.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn list_applicable_rules_per_dest_entity(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_source_entity` is never used
[INFO] [stdout]    --> src/ip_based/encoder.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn encode_source_entity(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_destination_entity` is never used
[INFO] [stdout]    --> src/ip_based/encoder.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn encode_destination_entity(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encoded_source_to_bit_arrays` is never used
[INFO] [stdout]    --> src/ip_based/encoder.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn encoded_source_to_bit_arrays(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirement_to_bits` is never used
[INFO] [stdout]    --> src/ip_based/encoder.rs:228:4
[INFO] [stdout]     |
[INFO] [stdout] 228 | fn requirement_to_bits(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirements_to_bit_arrays` is never used
[INFO] [stdout]    --> src/ip_based/encoder.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub fn requirements_to_bit_arrays(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SrcRequirement` is never used
[INFO] [stdout]  --> src/ip_based/rule_requirements.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum SrcRequirement {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dummy_source` is never used
[INFO] [stdout]   --> src/ip_based/rule_requirements.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn dummy_source() -> SourceEntity {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval_expr_with_dest` is never used
[INFO] [stdout]   --> src/ip_based/rule_requirements.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn eval_expr_with_dest(expr: &Expression, dest: &DestinationEntity) -> Result<AttributeValue, String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_src_attr_name` is never used
[INFO] [stdout]   --> src/ip_based/rule_requirements.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn get_src_attr_name(expr: &Expression) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_src_requirements` is never used
[INFO] [stdout]   --> src/ip_based/rule_requirements.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn collect_src_requirements(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_shannon_entropy_from_probabilities` is never used
[INFO] [stdout]  --> src/pol-tree/cal_shannon_entropy.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn cal_shannon_entropy_from_probabilities(probabilities: &[f64]) -> f64 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `information_gain` is never used
[INFO] [stdout]   --> src/pol-tree/cal_shannon_entropy.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn information_gain(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attribute_value_to_key` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn attribute_value_to_key(value: &AttributeValue) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_attribute_value_to_key` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn ip_attribute_value_to_key(value: &IpAttributeValue) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_user_attribute_probabilities` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn cal_user_attribute_probabilities(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_resource_attribute_probabilities` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn cal_resource_attribute_probabilities(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_user_attribute_entropy` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn cal_user_attribute_entropy(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_resource_attribute_entropy` is never used
[INFO] [stdout]   --> src/pol-tree/cal_probabilities.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn cal_resource_attribute_entropy(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_source_entity_attribute_probabilities` is never used
[INFO] [stdout]    --> src/pol-tree/cal_probabilities.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn cal_source_entity_attribute_probabilities(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_destination_entity_attribute_probabilities` is never used
[INFO] [stdout]    --> src/pol-tree/cal_probabilities.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn cal_destination_entity_attribute_probabilities(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_source_entity_attribute_entropy` is never used
[INFO] [stdout]    --> src/pol-tree/cal_probabilities.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn cal_source_entity_attribute_entropy(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cal_destination_entity_attribute_entropy` is never used
[INFO] [stdout]    --> src/pol-tree/cal_probabilities.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn cal_destination_entity_attribute_entropy(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.91s
[INFO] running `Command { std: "docker" "inspect" "085e5361a3285c9a099a8e60ef0d006f6062f45a63b65001c870b16eeb909ca2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "085e5361a3285c9a099a8e60ef0d006f6062f45a63b65001c870b16eeb909ca2", kill_on_drop: false }`
[INFO] [stdout] 085e5361a3285c9a099a8e60ef0d006f6062f45a63b65001c870b16eeb909ca2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] f0faf0eaaa8dc65d8e542f3425c315644adfe422747b3fa82a0e8a275a7fa642
[INFO] running `Command { std: "docker" "start" "-a" "f0faf0eaaa8dc65d8e542f3425c315644adfe422747b3fa82a0e8a275a7fa642", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `AttributeValue`, `DestinationEntityAttributeKey`, `SourceEntityAttributeKey`, and `SourceEntity`
[INFO] [stderr]  --> src/ip_based/classifier.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 |     SourceEntity, DestinationEntity, AttributeValue,
[INFO] [stderr]   |     ^^^^^^^^^^^^                     ^^^^^^^^^^^^^^
[INFO] [stderr] 3 |     SourceEntityAttributeKey, DestinationEntityAttributeKey,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Condition`, `Effect`, and `Expression`
[INFO] [stderr]  --> src/ip_based/classifier.rs:6:19
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Policy, Rule, Effect, Condition, Expression,
[INFO] [stderr]   |                   ^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AttrIdMap`
[INFO] [stderr]  --> src/ip_based/classifier.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 |     AttrIdMap, 
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `collect_src_requirements`
[INFO] [stderr]   --> src/ip_based/classifier.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 |     collect_src_requirements,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `abac_lab::parser::Parser`
[INFO] [stderr]   --> src/main.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use abac_lab::parser::Parser;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs::File`
[INFO] [stderr]   --> src/main.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use std::fs::File;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::prelude::*`
[INFO] [stderr]   --> src/main.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::io::prelude::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]   --> src/main.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::collections::HashMap;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `abac_lab::attr_val::*`
[INFO] [stderr]   --> src/main.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use abac_lab::attr_val::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AttributeValue`, `DestinationEntityAttributeKey`, and `SourceEntityAttributeKey`
[INFO] [stderr]   --> src/main.rs:16:24
[INFO] [stderr]    |
[INFO] [stderr] 16 | use ip_based::entity::{AttributeValue, SourceEntity, DestinationEntity, SourceEntityAttributeKey, DestinationEntityAttributeKey};
[INFO] [stderr]    |                        ^^^^^^^^^^^^^^                                   ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ip_based::classifier::*`
[INFO] [stderr]   --> src/main.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use ip_based::classifier::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ip_based::rule_requirements::*`
[INFO] [stderr]   --> src/main.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | use ip_based::rule_requirements::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `cal_destination_entity_attribute_entropy` and `cal_source_entity_attribute_entropy`
[INFO] [stderr]   --> src/main.rs:31:5
[INFO] [stderr]    |
[INFO] [stderr] 31 |     cal_source_entity_attribute_entropy,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 32 |     cal_destination_entity_attribute_entropy,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `content`
[INFO] [stderr]    --> src/abac_lab/parser.rs:118:13
[INFO] [stderr]     |
[INFO] [stderr] 118 |         let content = line.strip_prefix("rule(")
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `numeric_thresholds`
[INFO] [stderr]    --> src/ip_based/encoder.rs:232:5
[INFO] [stderr]     |
[INFO] [stderr] 232 |     numeric_thresholds: &HashMap<String, Vec<i64>>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numeric_thresholds`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bits`
[INFO] [stderr]   --> src/main.rs:90:17
[INFO] [stderr]    |
[INFO] [stderr] 90 |             let bits = abac_requirements_to_bit_arrays(&attr_id, &requirements, &abac_attr_order)
[INFO] [stderr]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_bits`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LoadedData` is never constructed
[INFO] [stderr]   --> src/main.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | struct LoadedData {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ABAC_ATTR_KEYS` is never used
[INFO] [stderr]   --> src/abac/entity.rs:32:11
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub const ABAC_ATTR_KEYS: &[&str] = &[
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `combining_algorithm` and `default_effect` are never read
[INFO] [stderr]   --> src/abac/rule.rs:48:9
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub struct AbacPolicy {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 47 |     pub policy_name: String,
[INFO] [stderr] 48 |     pub combining_algorithm: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 49 |     pub default_effect: Effect,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AbacPolicy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `description` and `effect` are never read
[INFO] [stderr]   --> src/abac/rule.rs:56:9
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub struct AbacRule {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] 55 |     pub id: String,
[INFO] [stderr] 56 |     pub description: String,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 57 |     pub effect: Effect,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AbacRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `matches` is never used
[INFO] [stderr]    --> src/abac/rule.rs:137:12
[INFO] [stderr]     |
[INFO] [stderr] 101 | impl AbacRule {
[INFO] [stderr]     | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 137 |     pub fn matches(
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `evaluate` is never used
[INFO] [stderr]    --> src/abac/rule.rs:245:12
[INFO] [stderr]     |
[INFO] [stderr] 161 | impl AbacCondition {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 245 |     pub fn evaluate(&self, src: &AbacEntity, dst: &AbacEntity) -> Result<bool, String> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AttributeValue` is never used
[INFO] [stderr]  --> src/abac_lab/attr_val.rs:2:10
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub enum AttributeValue {
[INFO] [stderr]   |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `UserAttributeKey` is never used
[INFO] [stderr]  --> src/abac_lab/attr_val.rs:9:10
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub enum UserAttributeKey {
[INFO] [stderr]   |          ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ResourceAttributeKey` is never used
[INFO] [stderr]   --> src/abac_lab/attr_val.rs:18:10
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub enum ResourceAttributeKey {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `UserAttribute` is never constructed
[INFO] [stderr]   --> src/abac_lab/attr_val.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub struct UserAttribute {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ResourceAttribute` is never constructed
[INFO] [stderr]   --> src/abac_lab/attr_val.rs:32:12
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub struct ResourceAttribute {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Rule` is never constructed
[INFO] [stderr]   --> src/abac_lab/attr_val.rs:38:12
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub struct Rule {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `RuleCondition` is never used
[INFO] [stderr]   --> src/abac_lab/attr_val.rs:45:10
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub enum RuleCondition {
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Parser` is never constructed
[INFO] [stderr]  --> src/abac_lab/parser.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Parser {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `parse_line`, `parse_user_attrib`, `parse_resource_attrib`, `parse_rule`, and `parse_attribute_value` are never used
[INFO] [stderr]    --> src/abac_lab/parser.rs:11:12
[INFO] [stderr]     |
[INFO] [stderr]  10 | impl Parser {
[INFO] [stderr]     | ----------- associated items in this implementation
[INFO] [stderr]  11 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  19 |     pub fn parse_line(&mut self, line: &str) -> Result<(), String> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  40 |     fn parse_user_attrib(&mut self, line: &str) -> Result<UserAttribute, String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  79 |     fn parse_resource_attrib(&self, line: &str) -> Result<ResourceAttribute, String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 117 |     fn parse_rule(&mut self, line: &str) -> Result<Rule, String> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 129 |     fn parse_attribute_value(&self, value: &str) -> Result<AttributeValue, String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_attribute_value` is never used
[INFO] [stderr]  --> src/ip_based/entity.rs:4:4
[INFO] [stderr]   |
[INFO] [stderr] 4 | fn parse_attribute_value(val: &Value) -> Result<AttributeValue, String> {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `SourceEntityAttributeKey` is never used
[INFO] [stderr]   --> src/ip_based/entity.rs:40:10
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub enum SourceEntityAttributeKey {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `DestinationEntityAttributeKey` is never used
[INFO] [stderr]   --> src/ip_based/entity.rs:49:10
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub enum DestinationEntityAttributeKey {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SourceEntity` is never constructed
[INFO] [stderr]   --> src/ip_based/entity.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub struct SourceEntity {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DestinationEntity` is never constructed
[INFO] [stderr]   --> src/ip_based/entity.rs:64:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | pub struct DestinationEntity {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `from_json_value`, `parse_attribute_key`, `deparse_attribute_key`, and `parse_attribute_value` are never used
[INFO] [stderr]    --> src/ip_based/entity.rs:71:12
[INFO] [stderr]     |
[INFO] [stderr]  70 | impl SourceEntity {
[INFO] [stderr]     | ----------------- associated functions in this implementation
[INFO] [stderr]  71 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub fn parse_attribute_key(key: &str) -> Result<SourceEntityAttributeKey, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 113 |     pub fn deparse_attribute_key(key: &SourceEntityAttributeKey) -> Result<String, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 123 |     fn parse_attribute_value(val: &Value) -> Result<AttributeValue, String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `from_json_value`, `parse_attribute_key`, `deparse_attribute_key`, and `parse_attribute_value` are never used
[INFO] [stderr]    --> src/ip_based/entity.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr] 128 | impl DestinationEntity {
[INFO] [stderr]     | ---------------------- associated functions in this implementation
[INFO] [stderr] 129 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {    
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 161 |     pub fn parse_attribute_key(key: &str) -> Result<DestinationEntityAttributeKey, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 171 |     pub fn deparse_attribute_key(key: &DestinationEntityAttributeKey) -> Result<String, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 180 |     fn parse_attribute_value(val: &Value) -> Result<AttributeValue, String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Effect` is never used
[INFO] [stderr]  --> src/ip_based/rule.rs:9:10
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub enum Effect {
[INFO] [stderr]   |          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Expression` is never used
[INFO] [stderr]   --> src/ip_based/rule.rs:15:10
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub enum Expression {
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Condition` is never used
[INFO] [stderr]   --> src/ip_based/rule.rs:28:10
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub enum Condition {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Policy` is never constructed
[INFO] [stderr]   --> src/ip_based/rule.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub struct Policy {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Rule` is never constructed
[INFO] [stderr]   --> src/ip_based/rule.rs:56:12
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub struct Rule {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_json_value` is never used
[INFO] [stderr]   --> src/ip_based/rule.rs:64:12
[INFO] [stderr]    |
[INFO] [stderr] 63 | impl Policy {
[INFO] [stderr]    | ----------- associated function in this implementation
[INFO] [stderr] 64 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_json_value` and `matches` are never used
[INFO] [stderr]    --> src/ip_based/rule.rs:107:12
[INFO] [stderr]     |
[INFO] [stderr] 106 | impl Rule {
[INFO] [stderr]     | --------- associated items in this implementation
[INFO] [stderr] 107 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 143 |     pub fn matches(
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_json_value`, `evaluate`, `compare_values`, `references_dst`, and `evaluate_dest_only` are never used
[INFO] [stderr]    --> src/ip_based/rule.rs:154:12
[INFO] [stderr]     |
[INFO] [stderr] 153 | impl Condition {
[INFO] [stderr]     | -------------- associated items in this implementation
[INFO] [stderr] 154 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 228 |     pub fn evaluate(
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 304 |     fn compare_values<F>(lhs: &AttributeValue, rhs: &AttributeValue, cmp: F) -> Result<bool, String>
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 314 |     pub fn references_dst(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 330 |     pub fn evaluate_dest_only(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_json_value`, `evaluate`, `get_source_attribute`, `get_destination_attribute`, `references_dst`, and `references_src_or_env` are never used
[INFO] [stderr]    --> src/ip_based/rule.rs:422:12
[INFO] [stderr]     |
[INFO] [stderr] 421 | impl Expression {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] 422 |     pub fn from_json_value(value: &Value) -> Result<Self, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 476 |     pub fn evaluate(
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 532 |     fn get_source_attribute(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 556 |     fn get_destination_attribute(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 577 |     pub fn references_dst(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 588 |     pub fn references_src_or_env(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_rule_applicable_for_dest_entity` is never used
[INFO] [stderr]   --> src/ip_based/classifier.rs:15:4
[INFO] [stderr]    |
[INFO] [stderr] 15 | fn is_rule_applicable_for_dest_entity(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `list_applicable_rules_per_dest_entity` is never used
[INFO] [stderr]   --> src/ip_based/classifier.rs:26:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub fn list_applicable_rules_per_dest_entity(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `encode_source_entity` is never used
[INFO] [stderr]    --> src/ip_based/encoder.rs:150:8
[INFO] [stderr]     |
[INFO] [stderr] 150 | pub fn encode_source_entity(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `encode_destination_entity` is never used
[INFO] [stderr]    --> src/ip_based/encoder.rs:165:8
[INFO] [stderr]     |
[INFO] [stderr] 165 | pub fn encode_destination_entity(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `encoded_source_to_bit_arrays` is never used
[INFO] [stderr]    --> src/ip_based/encoder.rs:212:8
[INFO] [stderr]     |
[INFO] [stderr] 212 | pub fn encoded_source_to_bit_arrays(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `requirement_to_bits` is never used
[INFO] [stderr]    --> src/ip_based/encoder.rs:228:4
[INFO] [stderr]     |
[INFO] [stderr] 228 | fn requirement_to_bits(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `requirements_to_bit_arrays` is never used
[INFO] [stderr]    --> src/ip_based/encoder.rs:292:8
[INFO] [stderr]     |
[INFO] [stderr] 292 | pub fn requirements_to_bit_arrays(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `SrcRequirement` is never used
[INFO] [stderr]  --> src/ip_based/rule_requirements.rs:7:10
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub enum SrcRequirement {
[INFO] [stderr]   |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `dummy_source` is never used
[INFO] [stderr]   --> src/ip_based/rule_requirements.rs:17:4
[INFO] [stderr]    |
[INFO] [stderr] 17 | fn dummy_source() -> SourceEntity {
[INFO] [stderr]    |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `eval_expr_with_dest` is never used
[INFO] [stderr]   --> src/ip_based/rule_requirements.rs:25:4
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn eval_expr_with_dest(expr: &Expression, dest: &DestinationEntity) -> Result<AttributeValue, String> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_src_attr_name` is never used
[INFO] [stderr]   --> src/ip_based/rule_requirements.rs:30:4
[INFO] [stderr]    |
[INFO] [stderr] 30 | fn get_src_attr_name(expr: &Expression) -> Option<String> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `collect_src_requirements` is never used
[INFO] [stderr]   --> src/ip_based/rule_requirements.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn collect_src_requirements(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cal_shannon_entropy_from_probabilities` is never used
[INFO] [stderr]  --> src/pol-tree/cal_shannon_entropy.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn cal_shannon_entropy_from_probabilities(probabilities: &[f64]) -> f64 {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `information_gain` is never used
[INFO] [stderr]   --> src/pol-tree/cal_shannon_entropy.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn information_gain(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `attribute_value_to_key` is never used
[INFO] [stderr]   --> src/pol-tree/cal_probabilities.rs:10:4
[INFO] [stderr]    |
[INFO] [stderr] 10 | fn attribute_value_to_key(value: &AttributeValue) -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ip_attribute_value_to_key` is never used
[INFO] [stderr]   --> src/pol-tree/cal_probabilities.rs:22:4
[INFO] [stderr]    |
[INFO] [stderr] 22 | fn ip_attribute_value_to_key(value: &IpAttributeValue) -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cal_user_attribute_probabilities` is never used
[INFO] [stderr]   --> src/pol-tree/cal_probabilities.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn cal_user_attribute_probabilities(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cal_resource_attribute_probabilities` is never used
[INFO] [stderr]   --> src/pol-tree/cal_probabilities.rs:61:8
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub fn cal_resource_attribute_probabilities(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cal_user_attribute_entropy` is never used
[INFO] [stderr]   --> src/pol-tree/cal_probabilities.rs:87:8
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub fn cal_user_attribute_entropy(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cal_resource_attribute_entropy` is never used
[INFO] [stderr]   --> src/pol-tree/cal_probabilities.rs:95:8
[INFO] [stderr]    |
[INFO] [stderr] 95 | pub fn cal_resource_attribute_entropy(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cal_source_entity_attribute_probabilities` is never used
[INFO] [stderr]    --> src/pol-tree/cal_probabilities.rs:103:8
[INFO] [stderr]     |
[INFO] [stderr] 103 | pub fn cal_source_entity_attribute_probabilities(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cal_destination_entity_attribute_probabilities` is never used
[INFO] [stderr]    --> src/pol-tree/cal_probabilities.rs:129:8
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub fn cal_destination_entity_attribute_probabilities(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cal_source_entity_attribute_entropy` is never used
[INFO] [stderr]    --> src/pol-tree/cal_probabilities.rs:155:8
[INFO] [stderr]     |
[INFO] [stderr] 155 | pub fn cal_source_entity_attribute_entropy(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cal_destination_entity_attribute_entropy` is never used
[INFO] [stderr]    --> src/pol-tree/cal_probabilities.rs:163:8
[INFO] [stderr]     |
[INFO] [stderr] 163 | pub fn cal_destination_entity_attribute_entropy(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `pol-tree` (bin "pol-tree" test) generated 71 warnings (run `cargo fix --bin "pol-tree" -p pol-tree --tests` to apply 16 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/pol_tree-7a83d98ed96b2c7c)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "f0faf0eaaa8dc65d8e542f3425c315644adfe422747b3fa82a0e8a275a7fa642", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f0faf0eaaa8dc65d8e542f3425c315644adfe422747b3fa82a0e8a275a7fa642", kill_on_drop: false }`
[INFO] [stdout] f0faf0eaaa8dc65d8e542f3425c315644adfe422747b3fa82a0e8a275a7fa642
